#!/usr/bin/env python
# -*- coding: UTF-8 -*-
'''
@Project ：图灵学习 
@File    ：8.task对象.py
@IDE     ：PyCharm 
@Author  ：ChenLiGao
@Date    ：2024-11-07 15:30
'''
import asyncio
import time


async  def others():
    print("任务开始.....")
    await asyncio.sleep(2)
    print("任务结束....")
    return "123"

async def main():
    print("这是协程函数的内部代码....")

    # 将存储了多个协程对象的列表交给循环调度
    # await方法在高版本中不接收协程对象，只接收task对象
    # task_list = [others(), others()]
    # result = await asyncio.wait(task_list) # 在3.11版本中这种调用方式不被接受支持
    # print(result)

    # # task是一种并发模型
    # task_1 = loop.create_task(others())
    # task_2 = loop.create_task(others())
    # result_1 = await task_1
    # print(f"第一次调用结果：{result_1}")
    # result_2 = await task_2
    # print(f"第二次调用结果：{result_2}")
    task_lsit = [loop.create_task(others()) for _ in range(2)]
    results = await asyncio.gather(*task_lsit) # 手机已经完成的任务的返回值，返回的类型是一个列表
    print("直接打印结果：",results)

start_time = time.time()
loop = asyncio.new_event_loop()
loop.run_until_complete(main())
end_time = time.time()
print(f"耗时：{end_time-start_time}")